package com.cino.demos.sourceCode.mybatisDemo.最贴切的类比demo;

import java.lang.reflect.Proxy;

/**
 * 🎭 智能管家机器人演示 - 动态代理最小MVP
 * 动态代理的最佳类比例子
 * src/
 * ├── SmartRobotDemo.java          # 主程序入口
 * ├── SmartRobotDemoV2.java        # 改进版主程序
 * ├── HouseService.java            # 服务接口
 * ├── SmartBrain.java              # 大脑处理器 (InvocationHandler)
 * └── ProxyFactory.java            # 代理工厂
 *
 * HouseService: 定义能做什么 (接口)
 * SmartBrain: 定义怎么做 (处理器)
 * ProxyFactory: 负责创建 (工厂)
 * SmartRobotDemo: 使用机器人 (客户端)
 */
public class SmartRobotDemo {
    public static void main(String[] args) {
        System.out.println("🏠 欢迎来到智能别墅！");
        
        // 创建超级大脑
        SmartBrain brain = new SmartBrain();
        
        // 创建智能管家机器人
        HouseService robot = (HouseService) Proxy.newProxyInstance(
            HouseService.class.getClassLoader(),
            new Class[]{HouseService.class},
            brain
        );
        
        System.out.println("🤖 智能管家机器人已就绪！\n");
        
        // 主人开始使用机器人
        System.out.println("👨‍💼 主人：机器人，给我倒杯水！");
        String result1 = robot.pourWater("常温");
        System.out.println("🤖 机器人：" + result1 + "\n");
        
        System.out.println("👨‍💼 主人：机器人，做点美食！");
        String result2 = robot.cookFood("意大利面");
        System.out.println("🤖 机器人：" + result2 + "\n");
        
        System.out.println("👨‍💼 主人：机器人，你是谁？");
        String result3 = robot.toString();
        System.out.println("🤖 机器人：" + result3);
    }
}